;******************************************************************
; convert.asm
; Ejercicio que transforma un nro en binario a su representacion en
; en ASCII mediante divisiones sucesivas y lo imprime en pantalla
;
;*******************************************************************

.model small
.stack
.data
	num		dw  394
	diez		dw  10
	cociente	db  0
	resto		db  0
	cadena		db  10 dup('0'),'$'

.code

start:
	mov  ax,@data	;ds <-- dir segmento de datos
	mov  ds,ax

	mov  dx,0	;pongo en 0 dx y ah para la dupla dx:ax
	mov  ax,num	;copio el nro en AX para divisiones sucesivas
	mov  si,9	;si apunta al ultimo byte de la cadena

otraDiv:
	div  diez		;dx:ax div 10 ==> dx <-- resto & ax <-- cociente

	add  dx,48		;convierto a Ascii el resto
	mov  cadena[si],dl	;lo pongo en la posicion anterior
	sub  si,1		;posiciono SI en el caracter anterior en la cadena
	
	cmp  ax,diez		;IF    cociente < 10
	jl   finDiv		;THEN  fin division
	
	mov  dx,0		;pongo en 0 DX para la dupla DX:AX
	jmp  otraDiv
finDiv:
	add  ax,48
	mov  cadena[si],al

	lea  dx,cadena
	mov  ah,9
	int  21h

	mov  ax,4c00h	;retorno al DOS
	int  21h
end start